package cn.com.bluemoon.daps.notice.template;

import cn.com.bluemoon.daps.notice.template.base.BaseMessage;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;
import java.util.List;

/**
 * @author Jarod.Kong
 * @date 2021/6/11 10:51
 */
@NoArgsConstructor
@Data
public class DevSyncMessage extends BaseMessage {
    /**
     * 头部，eg： 用户 张三@zhangsan 的开发同步DDL语句执行结束，相关信息如下：
     */
    @NotNull(message = "相关信息头部不可为空")
    private String header;
    /**
     * 模型信息，eg: 模型名称：电商OMS数据模型
     */
    private String modelId;
    @NotNull(message = "模型名不可为空")
    private String modelName;

    @NotNull(message = "数据源名称不可为空")
    private String dataSourceName;
    /**
     * 数据相关，eg: 业务线：电商
     */
    private String bizDesc;
    /**
     * 同步表信息，eg: 表名：oms_b2b_finance_client_daily_balance
     */
    private String tableId;
    @NotNull(message = "表名不可为空")
    private String tableName;
    /**
     * 数据源环境，eg：环境：开发环境
     */
    @NotNull(message = "同步环境不可为空")
    private String syncEnv;
    /**
     * 执行结果，eg: 结果：失败
     */
    @NotNull(message = "执行结果不可为空")
    private SyncStatus result;
    /**
     * 执行失败的原因
     */
    private List<String> reason;
    /**
     * <pre>
     * 消息尾部，eg: 1)如需处理，请登录数据资产平台：
     *         https://xxxxx.bluemoon.com.cn/data_asset_management
     *         2)本邮件仅通知，无需人工处理。
     * </pre>
     */
    @NotNull(message = "消息尾部不可为空")
    private String footer;

    @Override
    public String getMsgTemplatePath() {
        return "dev-sync-template.html";
    }
}
